home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
DeveloperLabs
/
Lab4
/
Solution
/
PaintScrollView.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
2KB
|
95 lines
#import "PaintScrollView.h"
#import "PaintDocView.h"
#import "PaintLabParams.h"
#import <appkit/Control.h>
#import <appkit/Matrix.h>
@implementation PaintScrollView
+newFrame:(const NXRect *)tF
{
NXRect docRect;
id myDocView;
// Create the newScrollView
self = [super newFrame:tF];
[[self setVertScrollerRequired:YES]
setHorizScrollerRequired:YES];
// Create and install the docView
NXSetRect(&docRect, 0.0, 0.0, DOC_WIDTH, DOC_HEIGHT);
myDocView = [PaintDocView newFrame:&docRect];
[self setDocView:myDocView];
return self;
}
//
// This method is automatically created by the Interface Builder
// because the class description for a PaintScrollView has an outlet
// called "brushSizeText." At runtime (during execution of
// loadNibFile::) this method is automatically called to set the
// value of the brushSizeText instance variable to be the id of
// whatever object was connected to the outlet.
//
// The right object to connect to the outlet is the text object
// which will reflect the value of the brush-size slider.
//
- setBrushSizeText:anObject
{
brushSizeText = anObject;
return self;
}
//
// The next four methods (clear:, setBrushShape:, setBrushSize:,
// and setPaintColor:) just send their parameters on to the
// docView, which does the real work.
//
- clear:sender
{
[[self docView] clear];
return self;
}
- setBrushShape:sender // Sender is a radio-button array
{
int shape;
shape = [sender selectedRow];
[[self docView] setDocBrushShape:shape];
return self;
}
- setBrushSize:sender // sender is a slider
{
float brushSize;
brushSize = (float)[sender intValue];
[brushSizeText setFloatValue:brushSize];
[[self docView] setDocBrushSize:brushSize];
return self;
}
- setPaintColor:sender // sender is a radio-button array
{
float color_array[] = {NX_BLACK, NX_DKGRAY, NX_LTGRAY, NX_WHITE};
// Double square brackets! The outer ones are for array
// indexing, the inner ones are a method call.
[[self docView] setDocPaintColor:color_array[[sender selectedRow]]];
return self;
}
@end